package com.tzl.design_pattern.factory_pattern.factory_method_pattern;

/**
 * 工厂方法模式:<br>
 * 工厂方法将工厂的职责也细化了，每种产品都由自己特定的工厂来生产，这也是单一职责的体现。<br>
 * 这个时候如果需要新增其他产品，需要创建两个类，一个产品类，一个具体工厂类。<br>
 * 使用场景：<br>
 * 1. 创建对象选哟大量重复的代码；<br>
 * 2. 客户端（应用层）不依赖产品类实例如何被创建，实现等细节；<br>
 * 3. 一个类通过其子类来指定创建那个对象。<br>
 * 缺点：<br>
 * 1.类的个数容易过多，增加复杂度。<br>
 * 2.增加了系统的抽象性和理解难度。<br>
 *
 * @author Zhilei Tang
 * @date Created in 2020/11/14 16:16
 */
public class FactoryMethodTest {
  public static void main(String[] args) {

    new AppleFactory().create().grow();
    new OrangeFactory().create().grow();
  }
}
